package com.spark.quartz.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.spark.common.annotation.Dict;
import com.spark.common.annotation.query.Query;
import com.spark.common.constants.QueryConstants;
import com.spark.common.core.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;

/**
 * 定时任务
 *
 * @author LYCHEE
 * @date 2025/04/01 15:18
 */
@Data
@TableName("qrtz_job")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class QrtzJob extends BaseEntity {

    /**
     * 任务名称
     */
    @Query(QueryConstants.QUERY_LIKE)
    @NotBlank(message = "任务名称不能为空")
    private java.lang.String jobName;

    /**
     * 调用目标字符串
     */
    @NotBlank(message = "调用目标字符串不能为空")
    private java.lang.String invokeTarget;

    /**
     * cron执行表达式
     */
    @NotBlank(message = "cron执行表达式不能为空")
    private java.lang.String cronExpression;

    /**
     * 计划执行错误策略
     *  : 0立即执行 1执行一次 2放弃执行
     */
    @Query(QueryConstants.QUERY_EQ)
    private java.lang.Integer misfirePolicy;

    /**
     * 是否并发执行
     *  : 0允许 1禁止
     */
    @Query(QueryConstants.QUERY_EQ)
    @Dict(dictCode = "status")
    private java.lang.Integer concurrent;

    /**
     * 状态
     *  : 0正常 1暂停
     */
    @Query(QueryConstants.QUERY_EQ)
    @Dict(dictCode = "status")
    private java.lang.Integer status;

    /**
     * 备注信息
     */
    private java.lang.String remark;

}
